package com.fdb.basic.framework.core.util.sdic;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

import com.fdb.basic.framework.core.util.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 外部系统字典项值转为本系统字典项值，项目启动加载类
 * @author qiuyf
 * @since 2019年1月24日 上午8:58:28
 * @version 1.0
 */
public class SDicToLocal{
	
	private static Logger logger = LoggerFactory.getLogger(SDicToLocal.class);

	private static final Map<String, String> mapServer = new HashMap<>();

	private static boolean isInit = false;

	private static void init() throws Exception {
		// 获取配置文件
		try {
			ResourceBundle res = ResourceBundle.getBundle("dicToLocal");
			Enumeration<String> keys = res.getKeys();
			while (keys.hasMoreElements()) {
				String keyStr = keys.nextElement();
				String value = res.getString(keyStr);
				String[] temp = value.split("_");
				if(temp.length == 3) {
					mapServer.put(temp[0].trim()+temp[1].trim() , temp[2].trim());
				}
			}
		} catch (Exception e) {
			logger.error("获取配置信息出错！", e);
			throw new Exception("获取配置信息出错！" + e);
		}
		isInit = true;
	}


	/**
	 * 通过字典项类型，字典项值获取本地对应字典项值
	 * @param opttype 字典项类型
	 * @param value   外部系统字典项值
	 * @return String key:不为空，返回本地系统字典项值；key为空，返回入参字典项值
	 * @author qiuyf
	 * @since 2019年1月24日 上午9:03:21
	 * @version 1.0
	 */
	public static String getLocalSysDicVal(String opttype, String value) throws Exception{
		if(StringUtil.isNullorBank(value)) {
			return value;
		}
		if (!isInit) {
			init();
		}
		String mapStr = opttype.trim() + value.trim();
		if(mapServer.containsKey(mapStr)) {
			return mapServer.get(mapStr);
		}
		return value;
	}

}
